1. Field of the Invention
The present invention relates generally to a system and method for enabling interoperation and partnering among various products over a network. More specifically, a system and method for enabling interoperation and partnering among software applications and/or hardware devices over a network such as the Internet in a way unpresupposed by the application and/or device products are disclosed.
2. Description of Related Art
With the explosive growth of the Internet as well as the increase in computing power and decrease in price of semiconductor chips, a wide spectrum of new, powerful applications have been developed and/or are being contemplated. These new applications provide enhanced capability and associated features for various industries and a wide variety of applications. In particular, these new applications relate to many if not all aspects of modern life: communication among people and organizations, news and entertainment, education and training, shopping, publishing, commerce, banking, investment, medicine, and so on.
Many of these applications are distributed in nature and thus involve networking. Yet, despite the distributed nature and the increased utility of such software application programs and devices, applications typically cannot easily interface, communicate, and interoperate with other applications. This inability to interoperate prevents the various applications from communicating data and/or control information to each other.
For example, it may be desirable for an accounting application package to interface, communicate, and interoperate with an inventory software application package. In such a case, the software developers of each of the software application packages have great shared interest in cooperating and partnering as having interoperation capabilities between the application packages may create a market niche and may enable partnered synergistic marketing for enhanced revenues.
Conventionally, when interoperation between two software application packages and/or devices over a network is desired, a protocol is defined that defines, restricts, and enables interoperation between the programs or devices. The defined protocol method of partnering often requires the addition of features and potential redesign of the application packages.
Other methods of enabling interoperation between two software application packages involve placing the control or intelligence of the interoperation in one of the application packages. However, the placement of control in one of the software packages causes design issues in determining which application package should control which overall function, to what extent, and/or for what purpose. Such issues may result in an iterative software development process of joint features between the interoperating application packages.
As is evident, such conventional methods of partnering are time consuming and usually require upgrading and/or replacing all or a part of one or both of the interoperating products. In addition, the definition of the interface imposes limitations on how the two products may be utilized together, thereby limiting the value of the partnering. Further, as new applications of the partnership are discovered, redesign of the partnership interface may often be required. Thus, the conventional partnering methods not only increase the software development costs but also causes delays in entering the market with an interoperation solution.
One alternative is to establish industry standards for a particular type of interface. However, industry standards often emerge after a technology is already in the market. As such, even with the establishment of industry standards for a particular type of interface, partnering with new technology is thus delayed or prevented.
Therefore, it is desirable to provide a system and method that eliminate these inefficiencies in providing interoperability among applications and/or devices to thereby enable a significant improvement in the deployment of programs capable of interoperating over the Internet.
A system and method for enabling interoperation and partnering that permit software application and/or hardware device products to interoperate over a network such as the Internet in a way unpresupposed by the products are disclosed. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication lines. Several inventive embodiments of the present invention are described herein.
The system and method for enabling interoperation among products over a network enable rapid establishment of partnerships between two or more software and/or hardware products. The Internet Application Partnering (IAP) system may be implemented in a processor comprising a structure, software, and configuration.
The method for partnering between an originating application and a target application over a network generally comprises transmitting a partnering protocol identification message to a partnering processor by the originating application to negotiate sizes of event code and data field of an originating event message to be transmitted by the originating application to the partnering processor, transmitting at least one originating event message containing an originating event code of the negotiated event code size, processing the originating event message by the partnering processor to generate a target event message having a target event code for transmission to the target application, and transmitting the target event message to the target application to cause an action in the target application in response to the target event message.
The method may further comprise locating the partnering processor by the originating application via the network prior to transmitting the partnering protocol identification message, the locating may include determining an IP address, transport protocol, and port number of the partnering processor. The processing of the originating event message optionally includes applying configuration logic of the partnering processor to the data contained in the originating event message, the configuration logic preferably includes formulations defining the target event code to be generated in response to the originating event code of the originating event message.
The method may further comprise providing a list of originating event codes and/or a list of target event codes, each originating and target event code listing defining an originating or a target application-specific event respectively. The originating event message transmitted may include a data field containing at least one data block extracted by the partnering processor. Each of the originating and target applications can be a software application or hardware device.
In another embodiment, a system for partnering an originating application and a target application over a network generally comprises a partnering processor adapted to receive a partnering protocol identification message and an originating event message from the originating application and to generate and transmit a target event message to the target application in response to the originating event message. The partnering protocol identification message negotiates sizes of event code and data fields of the originating event message to be transmitted by the original application, where the originating event message contains an originating event code of a size equal to the negotiated event code size and where the partnering processor processes the originating event message to generate the target event message containing a target event code to cause an action in the target application in response thereto.
In another embodiment, a system for partnering an originating application and a target application over a network generally comprises a partnering processor adapted to receive a partnering protocol identification message and an originating event message from the originating application and to generate a target event message for transmission to the target application in response to the originating event message, the originating event message containing an originating event code and the target event message containing a target event code. The partnering processor generally comprises a partnering structure for processing and storing data of the originating event message therein, a partnering configuration containing configuration logic, and a partnering software for applying the configuration logic of the partnering configuration on the data stored in the partnering structure to generate the target event message.
The partnering structure may include a partnership identifier to uniquely identify to the partnering processor the partnership between the originating application and the partnering processor, the partnership identifier being determined using the partnering protocol identification message. The partnering structure may also include an identifier record for storing data contained in the partnering protocol identification message and each originating event message. The identifier record includes a pointer to a queue of at least one event record, each event record being created by the partnering processor in response to each originating event message received by the partnering processor. Each event record preferably includes the originating event code contained in the originating event message corresponding to the event record. In addition, at least one event record includes a pointer to a queue of at least one data record, the data record containing at least one data block extracted by the partnering processor from the originating event message.